package com.manager.devicemanager.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.manager.devicemanager.entity.Bramtest;
import com.manager.devicemanager.entity.ComponentRecordTemplate; // 需确保该实体类存在
import com.manager.devicemanager.service.IComponentRecordTemplateService; // 需确保该服务接口存在
import com.manager.devicemanager.vo.PageVO; // 需确保该分页对象类存在
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.manager.devicemanager.common.Result; // 需确保该统一响应类存在
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wpf
 * @since 2025-05-29
 */
@RestController
@RequestMapping("/componentRecordTemplate")
public class ComponentRecordTemplateController {
    @Autowired
    private IComponentRecordTemplateService componentRecordTemplateService;

    /**
     * 仅分页功能的查询接口
     * @param pageVO 分页查询条件对象，包含页码、每页数量
     * @return 分页查询结果
     */
    @Operation(summary = "仅分页功能的查询")
    @PostMapping("/page")
    public Result<IPage<ComponentRecordTemplate>> page(
            @Parameter(description = "分页查询条件对象")
            @RequestBody PageVO<ComponentRecordTemplate> pageVO) {
        // 从 PageVO 对象中获取分页参数
        int pageNum = pageVO.getPageNum();
        int pageSize = pageVO.getPageSize();
// 获取查询条件
        ComponentRecordTemplate condition = pageVO.getCondition();

        // 构建查询条件包装器
        LambdaQueryWrapper<ComponentRecordTemplate> queryWrapper = new LambdaQueryWrapper<>(condition);

        // 创建 MyBatis-Plus 的 Page 对象
        Page<ComponentRecordTemplate> pageParam = new Page<>(pageNum, pageSize);
        // 调用服务层方法执行分页查询
        IPage<ComponentRecordTemplate> pageResult = componentRecordTemplateService.page(pageParam,queryWrapper);

        // 使用统一响应类返回分页结果
        return Result.success(pageResult);
    }
}
